/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managertelaCadastros;

import classes.Cidade;
import classes.Empresa;
import classes.Filial;
import dao.DaoEmpresa;
import dao.DaoFilial;
import java.util.List;
import managerPesquisa.managerPesquisaCidade;
import telaCadastros.CadFilial;
import telasMensagem.MensagemInformacao;
import util.Mensagem;

/**
 *
 * @author fumio
 */
public class managerCadFilial implements interfaceManager {

    private Filial filial;
    private static CadFilial cadFilial;
    private DaoFilial daoFilial = new DaoFilial();
    private Empresa empresa;
    private Cidade cidade;

    public managerCadFilial(Filial cfilial) {
        cadFilial = CadFilial.getInstance(this);
        
        if (cfilial == null) {
            filial = new Filial();
            cadFilial.edtEmpresa.setText(loadEmpresa());
        } else {
            filial = cfilial;
            getData();
        }
        cadFilial.setVisible(true);
    }

    @Override
    public boolean salvar() {
        boolean resultado;
        try {
            if (filial == null) {
                filial = new Filial();
            }
            daoFilial.salvar(filial);
            Mensagem.registroConfirmado("filial");
            resultado = true;

        } catch (Exception e) {
            resultado = false;
        }
        return resultado;
    }

    @Override
    public List carregar() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean setData() {
        try {
         filial.setIdFilial(Long.parseLong(cadFilial.edtCodigo.getText()));  
         filial.setFantasia(cadFilial.edtFantasia.getText());
         filial.setEmpresa(empresa);
         filial.setCidade(cidade);
         filial.setEndereco(cadFilial.edtEndereco.getText());
         filial.setNumero(cadFilial.edtNumero.getText());
         filial.setBairro(cadFilial.edtBairro.getText());
         filial.setComplemento(cadFilial.edtComplemento.getText());
         filial.setCnpj(Long.parseLong(cadFilial.edtCnpj.getText()));
         filial.setIe(Long.parseLong(cadFilial.edtIe.getText()));
         
         return true;
        } catch (Exception e) {
            return false;
        }
        
        
    }

    @Override
    public final void getData() {
        cadFilial.edtCodigo.setText(filial.getIdFilial().toString());
        cadFilial.edtCnpj.setText(filial.getCnpj().toString());
        cadFilial.edtEmpresa.setText(filial.getEmpresa().getRazaoSocial());
        cadFilial.edtFantasia.setText(filial.getFantasia());
        cadFilial.edtEndereco.setText(filial.getEndereco());
        cadFilial.edtNumero.setText(filial.getNumero().toString());
        cadFilial.edtBairro.setText(filial.getBairro());
        cadFilial.edtCodigoCidade.setText(filial.getCidade().getCodigo().toString());
        cadFilial.edtUF.setText(filial.getCidade().getUf());
        cadFilial.edtComplemento.setText(filial.getComplemento());
        cadFilial.edtCidade.setText(filial.getCidade().getCidade());
    }
    
    public void carregaPesquisaCidade() {
        managerPesquisaCidade pesquisa = new managerPesquisaCidade();
        cidade = pesquisa.managerPesquisaCidade();
        cadFilial.edtCodigoCidade.setText(cidade.getCodigo().toString());
        cadFilial.edtCidade.setText(cidade.getCidade());
        cadFilial.edtUF.setText(cidade.getUf());
    }
    public final String loadEmpresa(){
        DaoEmpresa daoEmpresa = new DaoEmpresa();
        empresa = (Empresa) daoEmpresa.consultar(null, null);
        return empresa.getRazaoSocial();
    }
}
